home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 1 / Cream of the Crop 1.iso / PROGRAM / BEGINCPP.ARJ / #1.C next >
C/C++ Source or Header  |  1990-07-29  |  6KB  |  189 lines

  1. #line 1 "#1.cxx"
  2. void *_new(long);
  3. void _delete(void*);
  4. void *_vec_new(void*,int,int,void*(*)(void*));
  5. void _vec_delete(void*,int,int,void(*)(void*,int),...);
  6. void exit(int);
  7. static void cdecl _STI();
  8. static void cdecl _STD();
  9.  
  10. typedef unsigned int size_t ;
  11. typedef char *va_list ;
  12. struct _iobuf { 
  13. char *__iobuf__ptr ;
  14. int __iobuf__cnt ;
  15. char *__iobuf__base ;
  16. char __iobuf__flag ;
  17. char __iobuf__file ;} ;
  18. extern struct _iobuf _iob [];
  19. int _filbuf (struct _iobuf *);
  20. int _flsbuf (int , struct _iobuf *);
  21. void clearerr (struct _iobuf *);
  22. int fclose (struct _iobuf *);
  23. int fcloseall (void );
  24. struct _iobuf *fdopen (int , char *);
  25. int fflush (struct _iobuf *);
  26. int fgetc (struct _iobuf *);
  27. int fgetchar (void );
  28. int fgetpos (struct _iobuf *, long *);
  29. char *fgets (char *, int , struct _iobuf *);
  30. int flushall (void );
  31. struct _iobuf *fopen (char *, char *);
  32. int fprintf (struct _iobuf *, char *, ... );
  33. int fputc (int , struct _iobuf *);
  34. int fputchar (int );
  35. int fputs (char *, struct _iobuf *);
  36. size_t fread (void *, size_t , size_t , struct _iobuf *);
  37. struct _iobuf *freopen (char *, char *, struct _iobuf *);
  38. int fscanf (struct _iobuf *, char *, ... );
  39. int fsetpos (struct _iobuf *, long *);
  40. int fseek (struct _iobuf *, long , int );
  41. long ftell (struct _iobuf *);
  42. size_t fwrite (void *, size_t , size_t , struct _iobuf *);
  43. char *gets (char *);
  44. int getw (struct _iobuf *);
  45. void perror (char *);
  46. int printf (char *, ... );
  47. int puts (char *);
  48. int putw (int , struct _iobuf *);
  49. int remove (char *);
  50. int rename (char *, char *);
  51. void rewind (struct _iobuf *);
  52. int rmtmp (void );
  53. int scanf (char *, ... );
  54. void setbuf (struct _iobuf *, char *);
  55. int setvbuf (struct _iobuf *, char *, int , size_t );
  56. int sprintf (char *, char *, ... );
  57. int sscanf (char *, char *, ... );
  58. char *tempnam (char *, char *);
  59. struct _iobuf *tmpfile (void );
  60. char *tmpnam (char *);
  61. int ungetc (int , struct _iobuf *);
  62. int unlink (char *);
  63. int vfprintf (struct _iobuf *, char *, va_list );
  64. int vprintf (char *, va_list );
  65. int vsprintf (char *, char *, va_list );
  66. void *memccpy (void *, void *, int , unsigned int );
  67. void *memchr (void *, int , size_t );
  68. int memcmp (void *, void *, size_t );
  69. int memicmp (void *, void *, unsigned int );
  70. void *memcpy (void *, void *, size_t );
  71. void *memmove (void *, void *, size_t );
  72. void *memset (void *, int , size_t );
  73. void movedata (unsigned int , unsigned int , unsigned int , unsigned int , unsigned int );
  74.  
  75. char *strcat (char *, char *);
  76. char *strchr (char *, int );
  77. int strcmp (char *, char *);
  78. int strcmpi (char *, char *);
  79. int stricmp (char *, char *);
  80. char *strcpy (char *, char *);
  81. size_t strcspn (char *, char *);
  82. char *strdup (char *);
  83. char *_strerror (char *);
  84. char *strerror (int );
  85. size_t strlen (char *);
  86. char *strlwr (char *);
  87. char *strncat (char *, char *, size_t );
  88. int strncmp (char *, char *, size_t );
  89. int strnicmp (char *, char *, size_t );
  90. char *strncpy (char *, char *, size_t );
  91. char *strnset (char *, int , size_t );
  92. char *strpbrk (char *, char *);
  93. char *strrchr (char *, int );
  94. char *strrev (char *);
  95. char *strset (char *, int );
  96. size_t strspn (char *, char *);
  97. char *strstr (char *, char *);
  98. char *strtok (char *, char *);
  99. char *strupr (char *);
  100.  
  101.  
  102. struct String { 
  103.     char *_String_str ;
  104. } ;
  105. int _String_count ;
  106. struct String *_String__ctorNFNPC__ (struct String* , char *);
  107.  
  108. char *_String__ONPC (struct String* );
  109. extern void report (void );
  110. extern int _ltNFCString__CString___ (struct String , struct String );
  111.  
  112. //This is constructor String::String(char *)
  113. struct String *_String__ctorNFNPC__ (register struct String *this , char *_au0_s )
  114. {
  115.     if (this == 0 )
  116.            this = (struct String *)_new ( (long )(sizeof (struct String))) ;
  117.     _String_count ++ ;
  118.     this -> _String_str = (((char *)_new (
  119.             (long )((sizeof (char ))* (strlen ( (char *)_au0_s ) + 1 ))) ));
  120.     strcpy ( this -> _String_str , (char *)_au0_s ) ;
  121.     return this ;
  122.  
  123. //This is String::operator char*()
  124. char *_String__ONPC (register struct String *this ) { 
  125.     char *_au1_p = 0 ;    
  126.     
  127.           _au1_p = (((char *)_new ( (long )
  128.           ((sizeof (char ))*(strlen ( (char *)this -> _String_str ) + 1 ))) ));
  129.           strcpy ( _au1_p , (char *)this -> _String_str ) ;
  130.           return _au1_p ;
  131.  
  132. extern int _ltNFCString__CString___ (struct String _au0_s1 , struct String _au0_s2 )
  133.     return strcmp ( (char *)_au0_s1 . _String_str , (char *)_au0_s2 . _String_str ) ;
  134.  
  135. extern void report ()
  136.     printf ( (char *)"Report on String usage: ") ;
  137.     printf ( (char *)" %d Strings created\n", _String_count ) ;
  138.  
  139. int main ()
  140.   { 
  141.     struct String _au1_s0 ;
  142.     struct String _au1_s1 ;
  143.     struct String _au1_s2 ;
  144.     struct String *_au1_sp = 0 ;
  145.  
  146.     char *_au1_cp = 0 ;
  147.     
  148.     ( ( (_String_count ++ ), ( ((& _au1_s0 )-> _String_str = 
  149.         (((char *)_new ( (long )(sizeof (char ))) ))), 
  150.         ( ((*(& _au1_s0 )-> _String_str )= 0 ), (((& _au1_s0 )))) ) ) ) ;
  151.     
  152.     _String__ctorNFNPC__ ( & _au1_s1 , "s1 == \"Hello C\"\n") ;
  153.     _String__ctorNFNPC__ ( & _au1_s2 , "s2 == \"Hello C++\"\n") ;
  154.     _au1_sp = (struct String *)_String__ctorNFNPC__ ( 
  155.                                         (struct String *)0 , "Hello world!") ;
  156.  
  157.     _au1_cp = _String__ONPC ( _au1_sp ) ;
  158.  
  159.     if (! strcmp ( (char *)_au1_cp , (char *)_String__ONPC ( _au1_sp ) ) )
  160.         printf ( (char *)"char *cp == (char *) *sp == \"%s\"\n", _au1_cp ) ;
  161.  
  162.     ( printf ( (char *)"%s", (& _au1_s1 )-> _String_str ) ) ;
  163.     ( printf ( (char *)"%s", (& _au1_s2 )-> _String_str ) ) ;
  164.  
  165.     if (( (strcmp ( (char *)(& _au1_s1 )-> _String_str , 
  166.                     (char *)_au1_s2 . _String_str ) < 0 )) )
  167.         printf ( (char *)"s1.operator < (s2)\n") ;
  168.     
  169.     if (_ltNFCString__CString___ ( _au1_s1 , _au1_s2 ) )
  170.         printf ( (char *)"operator < (s1, s2)\n") ;
  171.     
  172.     report ( ) ;
  173.     
  174.     ( (( ( ( _delete ( (void *)(& _au1_s2 )-> _String_str ) , 0 ) , 
  175.                         (( (0 ), 0 ) )) , 0 ) ), 0 ) ;
  176.     ( (( ( ( _delete ( (void *)(& _au1_s1 )-> _String_str ) , 0 ) , 
  177.                         (( (0 ), 0 ) )) , 0 ) ), 0 ) ;
  178.     ( (( ( ( _delete ( (void *)(& _au1_s0 )-> _String_str ) , 0 ) , 
  179.                         (( (0 ), 0 ) )) , 0 ) ), 0 ) ;
  180.   }  exit ( 0 ); 
  181. }
  182.